package com.micro.glszh.stat.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.micro.glszh.stat.base.BaseEntity;
import com.micro.glszh.stat.base.ValidationGroups;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;

import java.io.Serializable;


/**
 * sys_user
 *
 * @Author gaopengfei
 * @create 2024/10/21 15:53
 */

/**
 * 用户表
 */
@TableName("sys_user")
@Data
@ApiModel(description="用户表")
public class SysUser extends BaseEntity implements Serializable {
    /**
    * 主键id
    */
    @TableId
    @ApiModelProperty(value="主键id")
    @NotNull(groups = ValidationGroups.Update.class, message = "主键id不能为null")
    private Integer id;

    /**
    * 姓名
    */
    @ApiModelProperty(value="姓名")
    @Size(max = 50,message = "姓名最大长度要小于 50")
    @NotBlank(groups = ValidationGroups.Insert.class, message = "姓名不能为空")
    private String name;

    /**
    * 手机号码
    */
    @ApiModelProperty(value="手机号码")
    @Size(max = 20,message = "手机号码最大长度要小于 20")
    @NotBlank(groups = ValidationGroups.Insert.class, message = "手机号码不能为空")
    private String phone;

    /**
    * 密码
    */
    @JsonIgnore
    @ApiModelProperty(value="密码")
    @Size(groups = ValidationGroups.Insert.class, max = 250,message = "密码最大长度要小于 250")
    private String password;

    /**
    * 年级
    */
    @ApiModelProperty(value="年级")
    private Integer grade;

    /**
     * 班级
     */
    @ApiModelProperty(value="班级序号")
    private Integer classId;

    /**
    * 角色
    */
    @ApiModelProperty(value="角色")
    @Size(groups = ValidationGroups.Insert.class, max = 20,message = "角色最大长度要小于 20")
    private String role;

    /**
    * 数据权限 0 全部 ，1 本级（本年级）2 本人
    */
    @ApiModelProperty(value="数据权限 0 全部 ，1 本级（本年级）2 本人")
    private Integer dataSource;

    /**
     * 姓名
     */
    @ApiModelProperty(value="微信姓名")
    private String nickName;

    /**
     * 姓名
     */
    @ApiModelProperty(value="微信头像")
    private String avatarUrl;


    private static final long serialVersionUID = 1L;

}